Development of computer software, especially complex software, requires collaboration of designers and programmers. Once a program version is developed, further modification of the program is often required. In particular, modification of a generic software application is often required to tailor the program to the needs of a particular entity. Where software, such as Enterprise Resource Planning (ERP) software, is developed for large entities, a number of groups, each including a large number of people, and assigned different tasks often collaborates to create the software. For example, the designers may include a business model design team, software design team, and programmers. The business model design team creates business model designs, for which the software designers create software specifications for modeling a software process satisfying the identified business needs, which software specifications the programmers use to code programs satisfying the software specifications. Further, different sub-groups may be assigned to different aspects of business model and software specification development, which are then to be consolidated to create the software specifications to be passed on to the programmers who program the software according to the specifications. The programmers, too, may be assigned to the coding of different software parts to be used in concert.
The specifications for software development are therefore often disorganized. Additionally, the specifications are often based on the software designers' mental conceptualizations of the software modifications. Actual modifications may therefore be different than expected by the software designers, requiring another iteration of specifications development and software modification.
Additionally, the software coding for implementation of the specification often falls short of the specifications provided to the programmers. Testing is therefore required to ensure that the programmed software application matches the specifications. This includes a potentially lengthy task of manual testing by domain experts to ensure that the programmed software complies with the expected application behavior as defined by the specifications.
The procedure is prone to error, with respect to the software designers' understanding of the business model designers' requirements, the software designers' conceptualization of the application behavior according to their specifications, the programmers' understanding of the expected application behavior as set forth in the specifications, and the testing of the coded software.
The software development procedure may therefore require numerous iterations and cost an enormous amount, with respect to both time and money.
Furthermore, for implementation of software, users are trained in their use. Such training often requires simulations of an actual use of the software. However, a simulation may become outdated in view of software modifications implemented subsequent to creation of the simulation. Modifications of the simulation are therefore required, which modifications require determination of how the modifications affect the simulation, or to create an entirely new software simulation. Additionally, captured screenshots often include data having been input in the target application whose display screens have been captured, which data may be private. There may therefore be a desire to change out data displayed in fields for the training display screens, which would require entering such a change to the captured display screens including private data. Moreover, while captured data text or user interface type text is in one language, there may be a desire to store versions of training display screens in other languages, requiring the modification of the display screens to create respective versions thereof in other languages.
U.S. patent application Ser. No. 11/430,482, filed May 8, 2006, which issued as U.S. Pat. No. 8,087,007 (“the '007 patent”), and which is incorporated by reference herein in its entirety, describes a system and method for increasing efficiency of software and training simulation development and modification.
Aside from a core program, software administrators and/or user with sufficient permission can create EPSS objects, which can include user help tips, warnings, and/or program behavior modifications, which objects can be respectively associated with various parts of an application, including, for example, graphical parts, such as graphical user interface (GUI) controls.